package cn.tang.tframe.mybatis.manager;

import cn.tang.tframe.common.base.PageBean;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.List;


/**
 * 业务操作基类
 * 
 * @author tanghc
 */
public interface IBaseManager<PK extends Serializable, E extends Serializable, C extends Serializable> {
	int countByExample(C example);

	@Transactional
	void deleteByPrimaryKey(PK id);

	@Transactional
	void insert(E record);

	List<E> selectByExample(C example);

	E selectByPrimaryKey(PK id);

	PageBean<E> page(C example);

	@Transactional
	void updateByPrimaryKeySelective(E record);

	@Transactional
	void updateByExampleSelective(E record,C example);

}